package com.landinfo.domain;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Type;

import javax.persistence.*;

import java.io.Serializable;
import java.time.ZonedDateTime;
import java.util.Objects;

/**
 * 大屏展示数据管理
 * 2024-10-28 w
 */
@ApiModel(description = "大屏展示数据管理 2024-10-28 w")
@Entity
@Table(name = "view_data_manage")
public class ViewDataManage implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @Column(name = "id", length = 36)
    @GeneratedValue(strategy = GenerationType.AUTO, generator = "custom-uuid")
    @GenericGenerator(name = "custom-uuid", strategy = "com.landinfo.web.rest.util.CustomUUIDGenerator")
    private String id;

    /**
     * 大模块类型
     */
    @ApiModelProperty(value = "大模块类型")
    @Column(name = "big_type")
    private String bigType;

    /**
     * 模块名称
     */
    @ApiModelProperty(value = "模块名称")
    @Column(name = "name")
    private String name;

    /**
     * 模块英文名称
     */
    @ApiModelProperty(value = "模块英文名称")
    @Column(name = "en_name")
    private String enName;

    /**
     * 模块代码
     */
    @ApiModelProperty(value = "模块代码")
    @Column(name = "code")
    private String code;

    /**
     * 模块位置
     */
    @ApiModelProperty(value = "模块位置")
    @Column(name = "position")
    private String position;

    /**
     * 图表类型
     */
    @ApiModelProperty(value = "图表类型")
    @Column(name = "chart_type")
    private String chartType;

    /**
     * x轴名称
     */
    @ApiModelProperty(value = "x轴名称")
    @Column(name = "x_name")
    private String xName;

    /**
     * y轴名称
     */
    @ApiModelProperty(value = "y轴名称")
    @Column(name = "y_name")
    private String yName;

    /**
     * 统计、筛选条件
     */
    @ApiModelProperty(value = "统计、筛选条件")
    @Lob
    @Type(type = "text")
    @Column(name = "count_config")
    private String countConfig;

    /**
     * 结果内容
     */
    @ApiModelProperty(value = "结果内容")
    @Lob
    @Type(type = "text")
    @Column(name = "content")
    private String content;

    /**
     * chart配图设置
     */
    @ApiModelProperty(value = "chart配图设置")
    @Lob
    @Type(type = "text")
    @Column(name = "chart_config")
    private String chartConfig;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    @Column(name = "update_time")
    private ZonedDateTime updateTime;

    /**
     * 是否启用
     */
    @ApiModelProperty(value = "是否启用")
    @Column(name = "jhi_enable")
    private Boolean enable;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    @Column(name = "remark")
    private String remark;

    // jhipster-needle-entity-add-field - JHipster will add fields here, do not remove
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public ViewDataManage name(String name) {
        this.name = name;
        return this;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getCode() {
        return code;
    }

    public ViewDataManage code(String code) {
        this.code = code;
        return this;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getCountConfig() {
        return countConfig;
    }

    public ViewDataManage countConfig(String countConfig) {
        this.countConfig = countConfig;
        return this;
    }

    public void setCountConfig(String countConfig) {
        this.countConfig = countConfig;
    }

    public String getContent() {
        return content;
    }

    public ViewDataManage content(String content) {
        this.content = content;
        return this;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public String getChartConfig() {
        return chartConfig;
    }

    public ViewDataManage chartConfig(String chartConfig) {
        this.chartConfig = chartConfig;
        return this;
    }

    public void setChartConfig(String chartConfig) {
        this.chartConfig = chartConfig;
    }

    public ZonedDateTime getUpdateTime() {
        return updateTime;
    }

    public ViewDataManage updateTime(ZonedDateTime updateTime) {
        this.updateTime = updateTime;
        return this;
    }

    public void setUpdateTime(ZonedDateTime updateTime) {
        this.updateTime = updateTime;
    }

    public String getRemark() {
        return remark;
    }

    public ViewDataManage remark(String remark) {
        this.remark = remark;
        return this;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }
    // jhipster-needle-entity-add-getters-setters - JHipster will add getters and setters here, do not remove

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        ViewDataManage viewDataManage = (ViewDataManage) o;
        if (viewDataManage.getId() == null || getId() == null) {
            return false;
        }
        return Objects.equals(getId(), viewDataManage.getId());
    }

    @Override
    public int hashCode() {
        return Objects.hashCode(getId());
    }

    @Override
    public String toString() {
        return "ViewDataManage{" +
            "id=" + getId() +
            ", name='" + getName() + "'" +
            ", code='" + getCode() + "'" +
            ", countConfig='" + getCountConfig() + "'" +
            ", content='" + getContent() + "'" +
            ", chartConfig='" + getChartConfig() + "'" +
            ", updateTime='" + getUpdateTime() + "'" +
            ", remark='" + getRemark() + "'" +
            "}";
    }

    public String getEnName() {
        return enName;
    }

    public void setEnName(String enName) {
        this.enName = enName;
    }

    public String getChartType() {
        return chartType;
    }

    public void setChartType(String chartType) {
        this.chartType = chartType;
    }

    public String getxName() {
        return xName;
    }

    public void setxName(String xName) {
        this.xName = xName;
    }

    public String getyName() {
        return yName;
    }

    public void setyName(String yName) {
        this.yName = yName;
    }

    public String getPosition() {
        return position;
    }

    public void setPosition(String position) {
        this.position = position;
    }

    public Boolean getEnable() {
        return enable;
    }

    public void setEnable(Boolean enable) {
        this.enable = enable;
    }

    public String getBigType() {
        return bigType;
    }

    public void setBigType(String bigType) {
        this.bigType = bigType;
    }
}
